第 2 步 - 使用其中的数据源Kanzi Studio
在本教程的这一步中,您将使用上一步中创建的数据源插件从 XML 文件获取 Kanzi 应用程序数据。
从数据源创建数据对象
在本节中,准备 Kanzi Studio 工程,从本教程的上一步中创建的数据源插件接收数据。然后使用插件从数据源创建数据对象。在接下来的几个小节中,将这些数据对象绑定到应用程序中不同节点的属性,并使用该数据源中的数据。
要从数据源创建数据对象:
- 在 Kanzi Studio 中打开保存在 <KanziWorkspace>/Tutorials/Data sources/Start/Tool_project 目录中的 XML data source.kzproj 工程。
- 在 素材库 (Library) > Kanzi Engine 插件 (Kanzi Engine Plugins) 中选择 XML_data_source 插件,并确保在 属性 (Properties) 中启用 已启用 (Is Enabled) 属性。
建议使用 已启用 (Is Enabled) 属性启用或禁用工程中的任何 Kanzi Engine 插件。
- 在 素材库 (Library) > Kanzi Engine 插件 (Kanzi Engine Plugins) 中,右键点击XML_data_source 插件并选择 更新 Kanzi Engine 插件 (Update Kanzi Engine Plugin)。
每次您在 Visual Studio 中更改插件源代码并构建插件时,都必须更新插件元数据。
您在素材库 (Library) 中更新插件元数据并选择插件后,在属性 (Properties) 中元数据上次读取自 (Metadata Last Read From) 属性会显示加载哪个插件 .dll 文件Kanzi Studio 并从中读取元数据。
- 在 主菜单中,选择数据源 (Data Sources) 打开数据源 (Data Sources) 窗口。
使用数据源 (Data Sources) 窗口创建、设置和删除工程中的数据源,以及将数据源中的数据对象连接到工程中的节点和资源。
- 在数据源 (Data Sources) 窗口点击创建数据源 (Create Data Source),为数据源输入名称,然后点击确定 (OK) 创建数据源。
使用数据源类型 (Data Source Type) 属性设置要使用的数据源的类型。由于您在本教程的上一步骤中只定义了一个数据源 (XML_data_source),您只能选择该数据源。
例如,将数据源命名为 Cluster。
- 在数据源 (Data Sources) 窗口中,点击您刚创建的Cluster 数据源旁的 并将XML Data Source File 属性设为 Cluster.xml 文件。Cluster.xml 文件包含在数据源插件工程的 Visual Studio 解决方案中。您可以在 Application/bin 目录中找到该文件。
您在数据源插件中创建了XML Data Source File 属性。属性可用于告诉数据源插件从哪个 XML 文件中获取数据。
Cluster.xml 是您在本教程中创建的应用程序的数据源。您在上一步中创建的数据源插件根据文件中的数据创建数据对象。
- 点击Cluster 数据源旁的 使用 XML_data_source 数据源插件加载 Cluster.xml 文件并从该文件的内容创建数据对象。
插件创建数据对象后,您可以在数据源 (Data Sources) 窗口中看到。每当数据源中的数据更改时,要查看 Kanzi Studio预览 (Preview) 中的更改,点击 告诉数据源插件重新加载数据源并更新数据对象。
使用您应用程序中的数据源数据
在本节中,您将设置节点位置并显示 2D 文本块 (Text Block 2D) 节点中的值的属性绑定到您在上一节中创建的 Cluster 数据源中的数据对象。
要使用您应用程序中的数据源数据:
- 在 工程 (Project) 中选择RootPage 节点,在属性 (Properties) 中添加数据上下文 (Data Context) 属性,并将其设为您在上一节创建的数据源。
通过设置数据上下文 (Data Context) 属性,您可以告诉应用程序从哪个数据源接收数据。您为某个节点设置数据上下文 (Data Context) 属性时,其所有子节点都会继承数据上下文 (Data Context) 属性的值。如果要为其中一个子节点使用不同的数据上下文,将数据上下文 (Data Context) 属性添加到该节点并将其设置为要使用的数据上下文。建议您可以从数据源 (Data Sources) 窗口将数据对象拖放到要将数据上下文分配到其中的工程 (Project) 中的节点上来设置数据上下文。
- 在工程 (Project) 中选择Gauges > SpeedNeedle 节点,在属性 (Properties) 中点击绑定 (Bindings) 属性旁的 ,添加绑定 (Bindings) 属性,并在绑定参数编辑器 (Binding Argument Editor) 中设置:点击保存 (Save)。
使用绑定让SpeedNeedle 节点根据Cluster.xml 中的speed 元素中的值设置的值旋转。当speed 数据对象的值为 0 时,必须从数据源提供的值中减去 140 才能将指针正确定位在仪表上的 0 值处。
- 对 FuelNeedle 和 BatteryNeedle 节点重复上一步骤:
- 在 工程 (Project) 中选择 Gauges > SpeedView > SpeedValue 节点,从 数据源 (Data Sources) 窗口拖动 Cluster > gauges > speed 数据对象,并放在 属性 (Properties) 中的 文本 (Text) 属性上。
在具有单个字段的属性上拖放数据对象时,Kanzi Studio 会创建绑定,将该属性的值绑定到您放在该属性上的数据对象。
SpeedValue 节点的文本 (Text) 属性现在来自Cluster 数据源。
- 对 SpeedUnit 和Distance 重复上一步骤:
- 对于 Gauges > SpeedView > SpeedUnit 节点,从 数据源 (Data Sources) 将 Cluster > gauges > speed > unit 数据对象拖放到 文本 (Text) 属性上。
- 对于 Navigation > 2D 堆栈布局 (Stack Layout 2D) > Distance 节点,从 数据源 (Data Sources) 将 Cluster > navigation > directions > distance 数据对象拖放到 文本 (Text) 属性上。
- 在文本编辑器中打开 Application/bin/Cluster.xml 文件并更改 speed、fuel、battery 或 distance XML 元素中的值。保存文件后,您在本教程上一步中创建并在其中定义了数据源的 Kanzi Engine 插件,将会更新数据源并在 Kanzi Studio 预览 (Preview) 中显示更新后的值。
要手动重新加载数据源中的数据,在 数据源 (Data Sources) 窗口点击要重新加载的数据源旁的 。Kanzi Studio 会重新加载该数据源的数据并更新数据对象及其值。
建议默认只在 Kanzi Studio 窗口设定为焦点时预览 (Preview) 更新内容。要在Kanzi Studio 窗口未设定为焦点时查看 Kanzi Studio 工程中的更改,在 Kanzi Studio 中选择 > 用户首选项 (User Preferences),并在高级 (Advanced) 选项卡中启用Kanzi Studio 未聚焦时更新预览 (Update Preview when Kanzi Studio is not focused)。
使用数据源中的数据控制状态
状态机控制本教程应用程序中的转向指示器和导航信息。在本步骤中,绑定这些节点中状态机的控制器属性的值,以便使用数据源中的数据更改应用程序的状态。
要使用数据源中的数据控制应用程序状态:
- 在工程 (Project) 中选择 Gauges > TurnIndicatorLeft 节点,从数据源 (Data Sources) 窗口拖动Cluster > turnindicator > left 数据对象,并放在属性 (Properties) 中的XMLdatasource.TurnIndicator 属性上。
XMLdatasource.TurnIndicator 控制器属性是布尔型数据类型。您可以将Cluster.xml 文件中turnindicator > left XML 元素的值设为 true 和 false 来打开和关闭转向指示灯。
- 为Gauges > TurnIndicatorRight节点重复上一步。使用Cluster > turnindicator > right 数据对象。
- 在工程 (Project) 中选择 Navigation > 2D 堆栈布局 (Stack Layout 2D) > VisualDirections节点,从数据源 (Data Sources)窗口拖动Cluster > navigation > directions > visualdirections 数据对象,并放在属性 (Properties) 中的 XMLdatasource.VisualDirections 属性上。
XMLdatasource.VisualDirections控制器属性的数据类型是整数,控制该节点的状态机有两个状态。要指示驾驶员左转,将XMLdatasource.VisualDirections 属性的值设为0 使用 LeftTurn 状态,对于右转,则将值设为 1 使用 RightTurn 状态。
- 为提供行车路线书面说明的 Navigation > 2D 堆栈布局 (Stack Layout 2D) > Instructions 节点重复上一步。将Cluster > navigation > directions > instructions 数据对象放到XMLdatasource.NavigationInstructions属性上。
XMLdatasource.NavigationInstructions控制器属性的数据类型是整数,控制该节点的状态机有四个状态。每个状态都有不同的书面说明。
您现在可以控制Cluster.xml 数据源中的组合仪表。使用文本编辑器来更改 Cluster.xml 文件中的值,保存 Cluster.xml 文件,Kanzi Studio 预览 (Preview) 和数据源 (Data Sources) 窗口会显示更新的数据对象及其值。
< 上一步
下一步 >
打开导航